package com.shuda.common.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
// 移除Lombok，显式提供访问器，确保跨模块调用兼容

import java.time.LocalDateTime;

/**
 * 跟进记录DTO
 */
@Schema(description = "跟进记录DTO")
public class FollowUpRecordDTO {

    @Schema(description = "客户ID")
    private Long customerId;

    @Schema(description = "客户姓名")
    private String customerName;

    @Schema(description = "客户手机号")
    private String customerPhone;

    @Schema(description = "跟进方式")
    private String followUpMethod;

    @Schema(description = "跟进内容")
    private String followUpContent;

    @Schema(description = "跟进结果")
    private String followUpResult;

    @Schema(description = "客户意向")
    private String customerIntention;

    @Schema(description = "下次跟进时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime nextFollowUpTime;

    @Schema(description = "通话时长（秒）")
    private Integer callDuration;

    @Schema(description = "录音文件路径")
    private String recordingFile;

    @Schema(description = "是否预约")
    private Boolean isAppointment;

    @Schema(description = "预约时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime appointmentTime;

    @Schema(description = "是否成交")
    private Boolean isDeal;

    @Schema(description = "成交金额")
    private String dealAmount;

    @Schema(description = "备注")
    private String remark;

    /**
     *
     * FollowUpRecordDTO 访问器
     * @param $params$
     * @return $returns$
     * @author ink
     * @Description: 显式getter/setter，替代Lombok
     * @date 2025-11-10 00:10
     */
    public Long getCustomerId() { return customerId; }
    public void setCustomerId(Long customerId) { this.customerId = customerId; }

    public String getCustomerName() { return customerName; }
    public void setCustomerName(String customerName) { this.customerName = customerName; }

    public String getCustomerPhone() { return customerPhone; }
    public void setCustomerPhone(String customerPhone) { this.customerPhone = customerPhone; }

    public String getFollowUpMethod() { return followUpMethod; }
    public void setFollowUpMethod(String followUpMethod) { this.followUpMethod = followUpMethod; }

    public String getFollowUpContent() { return followUpContent; }
    public void setFollowUpContent(String followUpContent) { this.followUpContent = followUpContent; }

    public String getFollowUpResult() { return followUpResult; }
    public void setFollowUpResult(String followUpResult) { this.followUpResult = followUpResult; }

    public String getCustomerIntention() { return customerIntention; }
    public void setCustomerIntention(String customerIntention) { this.customerIntention = customerIntention; }

    public LocalDateTime getNextFollowUpTime() { return nextFollowUpTime; }
    public void setNextFollowUpTime(LocalDateTime nextFollowUpTime) { this.nextFollowUpTime = nextFollowUpTime; }

    public Integer getCallDuration() { return callDuration; }
    public void setCallDuration(Integer callDuration) { this.callDuration = callDuration; }

    public String getRecordingFile() { return recordingFile; }
    public void setRecordingFile(String recordingFile) { this.recordingFile = recordingFile; }

    public Boolean getIsAppointment() { return isAppointment; }
    public void setIsAppointment(Boolean isAppointment) { this.isAppointment = isAppointment; }

    public LocalDateTime getAppointmentTime() { return appointmentTime; }
    public void setAppointmentTime(LocalDateTime appointmentTime) { this.appointmentTime = appointmentTime; }

    public Boolean getIsDeal() { return isDeal; }
    public void setIsDeal(Boolean isDeal) { this.isDeal = isDeal; }

    public String getDealAmount() { return dealAmount; }
    public void setDealAmount(String dealAmount) { this.dealAmount = dealAmount; }

    public String getRemark() { return remark; }
    public void setRemark(String remark) { this.remark = remark; }
}